package com.net.xpay.admin.vo;

import com.net.xpay.common.enums.partner.PartnerCombinationSettleRecordType;
import com.net.xpay.common.enums.user.CommissionMode;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 合伙人收益统计 安全发、批量有密聚合型
 */
@Getter
@Setter
@NoArgsConstructor
public class PartnerCombinationSettleRecordVo {

    @ApiModelProperty(notes = "日期")
    private LocalDate day;

    @ApiModelProperty(notes = "商户id")
    private Long userId;

    @ApiModelProperty(notes = "合伙人id")
    private Long partnerId;

    @ApiModelProperty(notes = "月份")
    private Integer month;

    @ApiModelProperty(notes = "年份")
    private Integer year;

    @ApiModelProperty(notes = "业务类型 1.批量有密  2.安全发")
    private PartnerCombinationSettleRecordType type;

    @ApiModelProperty(notes = "是否已结算")
    private Boolean settled;

    @ApiModelProperty(notes = "结算时间")
    private LocalDateTime settleTime;

    /**
     * 用户费率和分佣模式
     */
    @ApiModelProperty(notes = "到支付宝服务费收费比例")
    private BigDecimal serviceRatio;

    @ApiModelProperty(notes = "到卡服务费收费比例")
    private BigDecimal bankServiceRatio;

    @ApiModelProperty(notes = "分佣模式")
    private CommissionMode commissionMode;

    @ApiModelProperty(notes = "百分比模式 合伙人毛利润分佣比例")
    private BigDecimal benefitRatio;

    @ApiModelProperty(notes = "成本模式 服务费成本价收费比例")
    private BigDecimal costServiceRatio;

    @ApiModelProperty(notes = "成本模式 到卡服务费成本价收费比例")
    private BigDecimal bankCostServiceRatio;

    @ApiModelProperty(notes = "分佣金额 元")
    private BigDecimal partnerSettleAmount;

    @ApiModelProperty(notes = "成功金额 单位为元")
    private BigDecimal successAmount;

    @ApiModelProperty(notes = "成功笔数")
    private Long successCount;

    /**
     * 收益来源自二级渠道的一些分佣配置
     */
    @ApiModelProperty(notes = "二级合伙人id")
    private Long twoLevelPartnerId;

    @ApiModelProperty(notes = "二级到上级毛利润分佣比例")
    private BigDecimal twoLevelBenefitRatio;

    @ApiModelProperty(notes = "二级的上级模式")
    private CommissionMode twoLevelCommissionMode;

    //二级合伙人 成本模式下 上级模式是指定上级费率模式下使用
    @ApiModelProperty(notes = "二级到上级合伙人到户分佣费率")
    private BigDecimal twoLevelServiceRatio;

    //二级合伙人 成本模式下 上级模式是指定上级费率模式下使用
    @ApiModelProperty(notes = "二级到上级合伙人到卡分佣费率")
    private BigDecimal twoLevelBankServiceRatio;


    //额外计算的
    @ApiModelProperty(notes = "成本模式 合伙人结算分成费率")
    private BigDecimal partnerServiceRatio;

    @ApiModelProperty(notes = "成本模式 合伙人到卡结算分成费率")
    private BigDecimal partnerBankServiceRatio;

    @ApiModelProperty(notes = "合伙人姓名")
    private String partnerName;




}
